/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.shoppingsystem.reports;

import static com.shoppingsystem.reports.CreadorReportes.TipoReporte.CUMPLEANOS;
import static com.shoppingsystem.reports.CreadorReportes.TipoReporte.MAS_VENDIDOS;
import static com.shoppingsystem.reports.CreadorReportes.TipoReporte.MEJOR_CLIENTE;
import static com.shoppingsystem.reports.CreadorReportes.TipoReporte.MENOS_VENDIDO;
import static com.shoppingsystem.reports.CreadorReportes.TipoReporte.PRODUCTOS_ESCASOS;
import static com.shoppingsystem.reports.CreadorReportes.TipoReporte.RECAUDO_IVA;
import static com.shoppingsystem.reports.CreadorReportes.TipoReporte.VENTAS_FABRICANTE;
import static com.shoppingsystem.reports.CreadorReportes.TipoReporte.VENTAS_PRODUCTO;

/**
 *
 * @author victor
 */
public class FabricaReportes extends CreadorReportes {

    @Override
    public Reporte crearReporte(int tipo) throws Exception {
        Reporte reporte = null;
        switch (tipo) {
            case MAS_VENDIDOS:
                reporte = new ReporteMasVendidos();
                break;
            case MEJOR_CLIENTE:
                reporte = new ReporteMejorCliente();
                break;
            case MENOS_VENDIDO:
                reporte = new ReporteMenosVendidos();
                break;
            case VENTAS_PRODUCTO:
                reporte = new ReporteVentasProducto();
                break;
            case VENTAS_FABRICANTE:
                reporte = new ReporteVentasFabricante();
                break;
            case CUMPLEANOS:
                reporte = new ReporteCumpleanos();
                break;
            case PRODUCTOS_ESCASOS:
                reporte = new ReporteExistencias();
                break;
            case RECAUDO_IVA:
                reporte = new ReporteRecaudoIVA();
                break;
            default:
                throw new Exception("Tipo de reporte inexistente!");
        }
        return reporte;
    }

}
